///*
// * To change this template, choose Tools | Templates
// * and open the template in the editor.
// */
//
//package org.jxtafileshare;
//
//import java.io.*;
//import java.util.Enumeration;
//import net.jxta.document.*;
//import net.jxta.peergroup.*;
//import net.jxta.exception.*;
//import net.jxta.impl.peergroup.*;
//import net.jxta.id.*;
//import net.jxta.discovery.*;
//import net.jxta.pipe.*;
//import net.jxta.protocol.*;
//import java.net.MalformedURLException;
//import java.net.URL;
//import net.jxta.endpoint.*;
//import java.lang.reflect.InvocationTargetException;
//import net.jxta.share.*;
//import net.jxta.share.client.*;
//
///**
// *
// * @author Danny
// */
//public class FileShare {
//    static PeerGroup netPeerGroup = null;
//    private DiscoveryService myDiscoveryService = null;
//    private PipeService myPipeService = null;
//    private CMS myCms = null;
//    private ListRequestor myListRequestor = null;
//
//    private final static MimeMediaType SMLMIMETYPE =
//            new MimeMediaType("text/xml");
//
//    public FileShare(PeerGroup netGroup) {
//        netPeerGroup = netGroup;
//    }
//
//    private void getServices() {
//        System.out.println("Getting Services...");
//        myDiscoveryService = netPeerGroup.getDiscoveryService();
//        myPipeService = netPeerGroup.getPipeService();
//
//        try {
//            myCms = new CMS();
//            myCms.init(netPeerGroup, null, null);
//
//            if(myCms.startApp(new File("client")) == -1) {
//                System.out.println("CMS initialization failed");
//                System.exit(-1);
//            }
//        } catch(Exception e) {
//            System.out.println("CMS init failure");
//            System.exit(-1);
//        }
//    }
//
//    public interface ContentListener {
//        public void finishedRetrieve(String url);
//    }
//
//    class GetRequestor extends GetContentRequest {
//        private ContentAdvertisement searchResult = null;
//        private String url = null;
//        private ContentListener listener;
//
//        public GetRequestor(PeerGroup pg, ContentAdvertisement res,
//                File tmpFile, ContentListener listener) throws InvocationTargetException {
//            super(pg, res, tmpFile);
//            searchResult = res;
//            url = tmpFile.getAbsolutePath();
//            this.listener = listener;
//        }
//
//        public ContentAdvertisement getContentAdvertisement() {
//            return searchResult;
//        }
//
//        public void notifyDone() {
//            listener.finishedRetrieve(url);
//        }
//    }
//
//    class ListRequestor extends CachedListContentRequest {
//        boolean gotOne = false;
//        public ListRequestor(PeerGroup group, String inSubStr) {
//            super(group, inSubStr);
//        }
//
//        public void notifyMoreResults() {
//            System.out.println("Search Done");
//
//            ContentAdvertisement[] result =
//                    myListRequestor.getResults();
//            if(result != null) {
//                System.out.println("Length = " + result.length + "]n");
//                for(int i = 0; i < result.length; i++) {
//                    ContentAdvertisement myAdv = result[i];
//                    System.out.println(myAdv.getName());
//
//                    if(!gotOne) {
//                        System.out.println("Starting Download");
//                        File tmpFile = new File("file" + myAdv.getName());
//
//                        ContentListener myListener = new ContentListener() {
//                            public void finishedRetrieve(String url) {
//                                System.out.println("File Download Finished");
//                            }
//                        };
//
//                        try {
//                            GetRequestor request = new GetRequestor(
//                                    netPeerGroup, result[1], tmpFile, myListener);
//                        } catch(InvocationTargetException e) {
//                            e.printStackTrace();
//                        }
//                        gotOne = true;
//                    }
//                }
//            } else {
//                System.out.println("No results");
//            }
//        }
//    }
//
//    private void sendData() {
//            myListRequestor = new ListRequestor(netPeerGroup, "jpg");
//            myListRequestor.activateRequest();
//        }
//
//        public void sendAction() {
//            sendData();
//        }
//
//        public void shareData() {
//            try {
//                myCms.getContentManager().share(new File("image.jpg"));
//            } catch(IOException ex) {
//                System.out.println("Share command failed.");
//            }
//        }
//}
//
